import Foundation
import SwiftUI
import Intents
import CalendarShared

public protocol Intentable {
    var isShowEvents: Bool { get }
    var isShowLunar: Bool { get }
    var isShowFestival: Bool { get }
    var isShowReminder: Bool { get }
    var themeMode: Theme { get }
    var languageMode: Language { get }
    var firstWeekMode: Week { get }
    var accentColor: ColorModel { get }
    var backgroundColor: ColorModel { get }
    var normalColor: ColorModel { get }
    var weekColor: ColorModel { get }
    var festivalColor: ColorModel { get }
    var currentColor: ColorModel { get }
    var calendarColor: ColorModel { get }
    var workColor: ColorModel { get }
    var restColor: ColorModel { get }
    var reminderColor: ColorModel { get }
}

public extension Intentable {
    var isShowEvents: Bool { false }
    var isShowLunar: Bool { true }
    var isShowFestival: Bool { true }
    var isShowReminder: Bool { false }
    var themeMode: Theme { .system }
    var languageMode: Language { .system }
    var firstWeekMode: Week { .sun }
    var accentColor: ColorModel { .accent }
    var backgroundColor: ColorModel { .background }
    var normalColor: ColorModel { .normal }
    var weekColor: ColorModel { .week }
    var festivalColor: ColorModel { .festival }
    var currentColor: ColorModel { .current }
    var calendarColor: ColorModel { .calendar }
    var workColor: ColorModel { .work }
    var restColor: ColorModel { .rest }
    var reminderColor: ColorModel { .reminder }
}
